From: Florian Müllner Date: Fri, 21 Feb 2020 18:38:53 +0000 (+0100) Subject: shellEntry: Restore natural-height-set instead of forcing it X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~772^2^2~61 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=3633e1feca237420f30b7354fa6a86de25152a59;p=gnome-shell.git shellEntry: Restore natural-height-set instead of forcing it If we are transitioning the label from 0 to its natural height, we must set natural-height-set again after querying the preferred height, otherwise Clutter would skip the transition. However when transitioning in the opposite direction, setting the property to true can go horribly wrong: If the actor hasn't been allocated before, it will store a fixed natural height of 0. But as there is no fixed min-height, we can end up with min-height > natural-height, which is a fatal error. (This isn't an issue when *actually* setting a fixed height, as that will set both natural and minimum height) So instead of always setting natural-height-set to true, restore its previous value to fix the issue. https://gitlab.gnome.org/GNOME/gnome-shell/issues/2255 --- diff --git a/js/ui/shellEntry.js b/js/ui/shellEntry.js index c1a1f1134..38f5a836d 100644 --- a/js/ui/shellEntry.js +++ b/js/ui/shellEntry.js @@ -191,9 +191,10 @@ class CapsLockWarning extends St.Label { this.remove_all_transitions(); + const { naturalHeightSet } = this; this.natural_height_set = false; let [, height] = this.get_preferred_height(-1); - this.natural_height_set = true; + this.natural_height_set = naturalHeightSet; this.ease({ height: capsLockOn ? height : 0,